{{tag>système diagnostic_outil}}

----

====== Appels système au clavier : les Touches Magiques ======



===== Qu'est-ce que c'est ? =====

Les touches magiques sont des combinaisons de touches qui permettent d'envoyer des appels directement au noyau. Il s'agit de combinaisons du type : **Alt+SysRq+Touche**. La touche **SysRq** (pour //System Request//), ou **Syst**, correspond souvent à la touche **Imprim Écran** (juste au-dessus de la touche **Inser** ou **Del**).


===== Pré-requis =====

Pour pouvoir accéder aux touches magiques, il faut que cette fonctionnalité ait été activée dans le noyau. **C'est le cas par défaut pour Ubuntu**, mais ça peut ne pas l'être pour d'autres distributions (pour le savoir, vérifiez l'existence du fichier ///proc/sys/kernel/sysrq//).

Si vous compilez vous-même votre noyau, il vous faut mettre l'option //Magic SysRq key// du menu //Kernel Hacking// à //oui//. Sachez cependant que certaines personnes((Cf. le [[http://casteyde.christian.free.fr/system/linux/guide/online/x15797.html|YALIG]] (//Yet Another Linux Installation Guide//) de Christian Casteyde.)) considèrent ces touches magiques comme un trou de sécurité.\\
A ce titre, les touches magiques ont été **désactivée entièrement** dans [[:precise|Ubuntu 12.04 LTS Precise]] (cf. [[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/194676|LP #194676]]) et **réactivée partiellement** depuis [[:trusty|Ubuntu 14.04 LTS Trusty]] (cf. [[https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1025467|LP #1025467]]). Voir [[#Activer ou désactiver les touches magiques]].

Vous pouvez également bloquer cette fonctionnalité en mettant **kernel.sysrq=0** dans le fichier **/etc/sysctl.conf**, à créer si besoin (ou la débloquer en mettant **1**).


===== Les combinaisons de touches =====

Les touches magiques sont documentées en détail dans le fichier **/usr/share/doc/linux-doc-`uname -r`/Documentation/sysrq.txt.gz** fourni par le paquet **linux-doc-`uname -r`** (dépend de votre version du noyau, donnée par la commande **uname -r**).

NB : les touches ne tiennent pas compte de la disposition de votre clavier et sont basées sur le layout qwerty [[ http://en.wikipedia.org/wiki/Magic_SysRq_key | source ]]\\
Pour connaître les touches correspondantes en AZERTY ou DVORAK voir la page [[wp>Magic_SysRq_key]].

<note tip>Depuis Ubuntu 14.04 LTS Trusty, seules les combinaison avec S, U et B sont activées par défaut.</note>

Les combinaisons disponibles sont :
^ Combinaison ^ Effet ^ Signification ^ Valeur ^
| **Alt   SysRq   0-9** | Détermine le niveau de log de la console | | 2 |
| **Alt   SysRq   b** | Redémarre l'ordinateur | re**B**oot | 128 |
| **Alt   SysRq   c** | Redémarre //via// **kexec** pour faire un crashdump | **C**rashdump | 8 |
| **Alt   SysRq   e** | Envoie un signal de terminaison (SIGTERM) à tous les processus (sauf //init//) | t**E**rm | 64 |
| **Alt   SysRq   f** | Tue le processus qui consomme le plus de mémoire (//via// **oom-killer**) | | 64 |
| **Alt   SysRq   i** | Envoie un signal de fin (SIGKILL, plus ferme que SIGTERM) à tous les processus (sauf //init//) | k**I**ll | 64 |
| **Alt   SysRq   k** | Tue tous les processus de la console virtuelle courante. | **K**ey | 64 |
| **Alt   SysRq   l (L minuscule)** | Envoie un signal de fin (SIGKILL, plus ferme que SIGTERM) à tous les processus (même //init//) | kil**L** | 64 |
| **Alt   SysRq   m** | Affiche le contenu actuel de la mémoire | **M**emory | 8 |
| **Alt   SysRq   o** | Éteint le systeme via APM | **O**ut | 128 |
| **Alt   SysRq   p** | Affiche sur la console les registres et drapeaux actuels | **P**rint | 8 |
| **Alt   SysRq   r** | Bascule la gestion du clavier de mode brute (raw) à XLATE | **R**aw | 4 |
| **Alt   SysRq   s** | Synchronise les disques (tente d'écrire toutes les données non sauvegardées) | **s**ync | 16 |
| **Alt   SysRq   t** | Affiche une liste des taches et autres informations dans la console | **T**ask | 8 |
| **Alt   SysRq   u** | Remonte les disques en lecture seule | **U**mount | 32 |



===== Procédure pour redémarrer votre machine =====

<note important>Depuis le [[:xorg|serveur X]] (l'interface graphique), il peut être nécessaire de commencer par se réapproprier le clavier, par la combinaison **Alt SysRq r**.</note>

Effectuez les combinaisons de touches suivantes, dans l'ordre :

  - **Alt   SysRq   s** - Synchronise les disques
  - **Alt   SysRq   e** - Essaie de fermer les processus en envoyant SIGTERM [facultatif]
  - **Alt   SysRq   i** - Tue tous les processus restant en envoyant SIGKILL [facultatif]
  - **Alt   SysRq   u** - Démonte les disques
  - **Alt   SysRq   b** - Redémarre

**Il est important d'attendre plusieurs secondes entre les différentes étapes**, car en cas de plantage sévère vous ne verrez pas les messages de progression s'afficher...

Un moyen mnémotechnique parmi d'autres pour se souvenir de la séquence : //**S**topper **U**buntu **B**rusquement// (pour la séquence longue : //**S**avoir **E**teindre **I**ntégralement **U**buntu **B**rusquement// ou
//**S**o **E**verything **I**s **U**nusual, **B**oot).//

Certains utilisent la séquence : REISUB ( //**R**etourner **E**n **I**slande **S**ur **U**n **B**ateau//).

===== Activer ou désactiver les touches magiques =====

À partir d'Ubuntu 12.10, le contrôle des touches magiques se paramètre dans le fichier ''/etc/sysctl.d/10-magic-sysrq.conf''.

Y ajouter la ligne « ''kernel.sysrq=1'' » réactive toutes les touches magiques, les experts en sécurité informatiques n'aiment pas beaucoup mais c'est bien pratique.

Pour activer certaines touches seulement, il faut indiquer la somme des touches (cf. [[#Les combinaisons de touches]]).\\
La valeur par défaut depuis Ubuntu 14.04 LTS Trusty est **176**, c'est à dire **16** (S = sync) + **32** (U = remount read-only) + **128** (B = reboot).

===== Voir aussi=====
  * [[dontzap]]

----

 //Contributeurs : [[utilisateurs:nknico]],   [[utilisateurs:naoli|naoli]]//